This disclosure relates in general to the field of information storage, and more particularly to a system and method for adding an internal RAID controller to a computer system.
RAID (redundant array of independent disks) storage technology allows for the storing of the same data on multiple hard disks. Redundantly storing the data on multiple hard disks allows for increased performance and fault tolerance which is the ability of a RAID array to withstand the loss of some of its hardware without the loss of data and without the loss of availability. The increased performance results from the input/output operations overlapping in a parallel manner. Storing data redundantly across multiple disks results in increased fault tolerance for RAID storage. There are at least nine types of RAID as well as a non-redundant RAID types all using disk striping and/or disk mirroring to increase performance and fault tolerance.
The RAID array appears to the operating system as a single hard disk or a LUN (logical unit number). In order to appear as a single hard disk and have the RAID functions occur within the multiple hard disks, the RAID array requires a RAID controller. The RAID controller determines what level of RAID a system supports and uses as well as allows the multiple hard disks to function and appear as a single hard disk or LUN to the operating system.
There are different ways to implement a RAID controller. Software based RAID controllers control the RAID array using software applications running on the system""s central processing unit (CPU) rather than specialized hardware and are typically found in entry level servers. Another implementation of a RAID controller is a RAID controller embedded on a system""s motherboard (RAID on motherboard or ROMB). Another implementation of a RAID controller is a PCI RAID controller where a RAID controller is on a PCI adapter card and plugged into a PCI expansion slot of a computer system. A final implementation of a RAID controller is an external RAID controller where a RAID controller and additional hard disks are in an enclosure separate from the main computer system.
One limitation associated with implementing a RAID controller is that with software based RAID controllers, the RAID controller puts a demand on a system""s CPU. This demand on the CPU can adversely affect the performance of software applications running on the system. Software based RAID controllers do provide cost advantages but demands on the CPU often outweigh the cost advantages.
Another limitation in implementing a RAID controller is that with ROMB, the RAID controller is limited to the space constraints of the motherboard. Therefore, ROMB offers only a fraction of the RAID performance offered by other types of RAID controllers. In addition, adding the RAID controller to the motherboard adds a fixed cost to the cost of the motherboard that not all users are willing to accept. Some users may not require a RAID controller but have to pay for one because the RAID controller is already installed on the motherboard and the cost of the RAID controller is already added into the cost of the motherboard.
Another limitation in implementing a RAID controller is that with a PCI card based RAID controller, a user uses up one of the system""s PCI expansion slots for the RAID controller. Users prefer to have as many PCI expansion slots as possible and get upset when required to use up an expansion slot for something like a RAID controller which they believe should not require the use of an expansion slot. In addition, the trend in computers is to make everything smaller meaning sacrificing options such as the number of PCI expansion slots. Therefore, if a user already has a less than desirable number of expansion slots, using one of those expansion slots for a RAID controller is not generally an acceptable option.
Another limitation in implementing a RAID controller is that an external RAID controller is expensive and requires the computer system to be in more than one box and therefore occupy more floor space. In addition, an external RAID controller cannot control any of the internal hard disks of the computer system. Therefore any data saved on the internal hard disks will not be able to take advantage of any of the RAID features such as increased performance and fault tolerance.
Therefore, a need has arisen for a system and method for adding a RAID controller that does not place a demand on the computer system""s CPU.
A further need has arisen for a system and method for adding a RAID controller that does not add a fixed cost to the cost of a motherboard.
A further need has arisen for a system and method that allows for adding a RAID controller without occupying a bus expansion slot.
A further need has arisen for a system and method that allows a RAID controller to control both internal and external hard disks.
In accordance with teachings of the present disclosure, a system and method are described for adding an internal RAID controller which substantially eliminates or reduces disadvantages and problems associated with previous systems and methods. The system and method allows for a user to add a RAID controller in an internal hard disk drive bay. The motherboard communicates with the RAID controller on one loop while the RAID controller communicates with the hard disk drives on a second loop.
In accordance with one aspect of the present disclosure, a system and method provides a user the ability to add an internal RAID controller to a computer. A computer has a plurality of hard disk drives that store data. The hard disk drives connect to the computer through hard disk drive bays. A modified hard disk drive bay accepts either a RAID controller or a hard disk drive. A user inserts the RAID controller into the modified hard disk drive bay. Data flows between the hard disk drives, the RAID controller, and the motherboard of the computer on two interface loops controlled by the loop controller. One of the interface loops, the control loop, provides an interface between the RAID controller and the loop controller on the motherboard. The other interface loop, the storage loop, provides an interface between the RAID controller, the internal hard disk drive bays, and any external hard disk drives. Therefore, the RAID controller communicates with the motherboard and the hard disk drives appear as one or more LUNs managed by RAID functionality.
More specifically, a computer uses fibre channel to allow for two communications: one communication between the motherboard and the RAID controller and a second communication between the RAID controller and the hard disk drives. The dual loop definition of the standard fibre channel hard disk drive connector provides an opportunity for the placement of a RAID controller in a hard disk drive bay. Reconfiguring the usage of the pin connectors on the hard disk drive bay allows for the hard disk drive bay to accommodate a RAID controller. With a RAID controller installed in a hard disk drive bay, two independent loops are formed: a control loop and a storage loop. The control loop provides communication between the motherboard and the RAID controller. The storage loop provides communication between the RAID controller and internal and external hard disk drives.
The present disclosure provides a number of important technical advantages. One important technical advantage is that the system and method provides for an internal RAID controller without placing any demands on the computer""s CPU. Unlike software based RAID controllers which often offer limited RAID levels and burden the system""s CPU by utilizing CPU cycles, a RAID controller in a hard disk drive bay allows for the operation of the desired number of RAID levels and does not place demands on the computer""s CPU and does not reduce the processing power available to application programs.
Another important technical advantage of the present disclosure is that the system and method provides for an internal RAID controller without adding a fixed cost to the cost of the motherboard. Users can determine whether or not they want to install a RAID controller in the hard disk drive bay. Therefore, a user does not have to pay for a RAID controller unless the user wants the RAID controller. Since the RAID controller is not embedded on the motherboard, the cost of the motherboard does not increase. In addition, the RAID controller does not burden the motherboard and there is room on the motherboard for other controllers desired by the users.
Another important technical advantage of the present disclosure is that the system and method provides for an internal RAID controller without using a PCI expansion slot. Because the RAID controller installs into a hard disk drive bay, a user does not have to use a PCI expansion slot for the RAID controller. Users like having the ability to expand their computers capabilities with expansion cards in PCI expansion slots and are therefore more satisfied with their computers when they feel that the PCI expansion slots are not unnecessarily occupied.
Another important technical advantage of the present disclosure is that the system and method allows for an internal RAID controller which is less expensive than an external RAID controller. In addition, an internal RAID controller can control both internal and external hard disk drives. Having an internal RAID controller saves the user money because the user only needs one RAID controller as opposed to two RAID controllers in order to control the internal and external hard disk drives. Also, an internal RAID controller allows the user, instead of the RAID configuration, to decide how to store data. For example, the user no longer has to store the operating system and applications files on the internal hard disk drives and all of the data on the external hard disk drives to allow the external RAID controller to control the data. Since the internal RAID controller controls all the hard disk drives, the user can spread the operating system, applications, and data among all of the hard disk drives. In addition, the user does not have to bother with the extra space occupied by an external RAID controller and finding a location to place it.